package mysql

import (
	"gorm.io/gorm"
	"time"
)

type Device struct {
	Id       int    //ID
	Name     string //名称
	Model    string //型号
	Brand    int    //品牌ID
	Classify int    //分类ID
}

type DeviceBrand struct {
	Id    int    //ID
	Name  string //名称
	Addr  string //地址
	Phone string //联系方式
}

type DeviceClassify struct {
	Id             int    //ID
	Contacts       int    //是否接触人体
	RequiresPower  int    //是否需要电源
	UsageScenarios string //使用场景
	Level          int    //影响等级
}

type User struct {
	Id       int    //ID
	Name     string //名称
	Password string //密码
	Email    string //
	Phone    string //电话
	Point    int    //积分点数
}

type Score struct {
	gorm.Model
	UserId int `gorm:"type:int(10);unique;commit:用户id"` //用户id
	Score  int `gorm:"type:int(10);commit:积分"`          //积分
}

type ChatGptHistory struct {
	gorm.Model
	ChatRoomID       int64  //聊天室ID
	SenderID         int64  //用户ID
	Contents         string //内容
	TheTypeOfMessage string //消息类型
}

type Goods struct { //商品表
	Id          int     `gorm:"type:int(11);commit:主键" json:"id"`                //主键
	GoodsName   string  `gorm:"type:varchar(25);commit:商品名称" json:"goods_name"`  //商品名称
	GoodsPrice  float64 `gorm:"type:decimal(10,2);commit:单价" json:"goods_price"` //单价
	GoodsStock  int     `gorm:"type:int(11);commit:库存" json:"goods_stock"`       //库存
	GoodsType   string  `gorm:"type:varchar(25);commit:商品类型" json:"goods_type"`  //商品类型
	Description string  `gorm:"type:varchar(50);commit:商品描述" json:"description"` //商品描述
	PageView    int     `gorm:"type:int(11);commit:浏览量" json:"page_view"`        //浏览量
	gorm.Model
}

type Orders struct { //订单表
	Id         int     `gorm:"type:int(11);commit:主键" json:"id"`                                             // 主键
	OrderId    string  `gorm:"type:varchar(50);commit:订单号" json:"order_id"`                                  // 订单号
	UserId     int     `gorm:"type:int(11);commit:用户Id" json:"user_id"`                                      // 用户Id
	GoodsId    int     `gorm:"type:int(11);commit:商品Id" json:"goods_id"`                                     // 商品Id
	Number     int     `gorm:"type:int(11);commit:数量" json:"number"`                                         // 数量
	TotalPrice float64 `gorm:"type:decimal(10,2);commit:总价格" json:"total_price"`                             // 总价格
	Address    int     `gorm:"type:int(11);commit:地址" json:"address"`                                        // 地址
	Status     int8    `gorm:"type:tinyint(1);commit:状态(0:未支付,1:已支付,2:已退款,3:已发货,4:已退货,5:已签收)" json:"status"` // 状态
	StartAt    time.Time
	EndAt      time.Time
}

type Payment struct { //支付表
	Id            int    `gorm:"type:int(11)" json:"id"`                 //主键
	PaymentMethod string `gorm:"type:varchar(25)" json:"payment_method"` //支付方式
}

type Address struct { //地址表
	Id             int    `gorm:"type:int(11)" json:"id"`                 //主键
	AddressId      int    `gorm:"type:int(11)" json:"address_id"`         //地址Id
	Province       string `gorm:"type:varchar(25)" json:"province"`       //省
	City           string `gorm:"type:varchar(25)" json:"city"`           //市
	County         string `gorm:"type:varchar(25)" json:"county"`         //县
	Town           string `gorm:"type:varchar(25)" json:"town"`           //镇
	Iphone         string `gorm:"type:varchar(25)" json:"iphone"`         //手机号
	DefaultAddress int8   `gorm:"type:tinyint(1)" json:"default_address"` //设置默认地址
}

// ChatHistoryOf 聊天记录
type ChatHistoryOf struct {
	gorm.Model
	Userid     int64  //用户ID
	ChatRoomId int64  //聊天室ID
	Problem    string //问题
	Answers    string //回答
}

// DoctorSClassificationOne 医生一级分类分类
type DoctorSClassificationOne struct {
	gorm.Model
	ClassName string
}

// DoctorSClassificationTwo 医生二级分类
type DoctorSClassificationTwo struct {
	gorm.Model
	DoctorSClassificationTwoName string
	DoctorSClassificationOneID   int64
}

type Doctors struct {
	gorm.Model
	DoctorSClassificationOneID int64
	DoctorSClassificationTwoID int64
	DoctorName                 string
	Excel                      string
	Rating                     string
	Score                      string
}

type ClassFrom struct { //类型表
	Id      int    `gorm:"type:int(11)" json:"id"`       //主键
	ClassId int    `gorm:"type:int(11)" json:"class_id"` //类型id
	Name    string `gorm:"type:varchar(25)" json:"name"` //类型名称
	gorm.Model
}
type DoctorRegistrationForm struct {
	gorm.Model
	doctorId        int64
	doctorName      string
	AppointmentDate time.Time
	AppointmentTime time.Time
	PatientID       int64
	Status          string
}
type Attendance struct { //用户签到表
	gorm.Model
	UserId int `gorm:"type:int(10);commit:用户id"`             //用户id
	SignIn int `gorm:"type:int(10);commit:签到状态：0-未签到,1-已签到"` //签到状态
}
